/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.qsdm.es.persistence;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author alberto
 */
@Entity
@Table(name = "experiencialaboral", catalog = "qsdm", schema = "")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Experiencialaboral.findAll", query = "SELECT e FROM Experiencialaboral e"),
    @NamedQuery(name = "Experiencialaboral.findById", query = "SELECT e FROM Experiencialaboral e WHERE e.id = :id"),
    @NamedQuery(name = "Experiencialaboral.findByFechaAlta", query = "SELECT e FROM Experiencialaboral e WHERE e.fechaAlta = :fechaAlta"),
    @NamedQuery(name = "Experiencialaboral.findByHorasSemanales", query = "SELECT e FROM Experiencialaboral e WHERE e.horasSemanales = :horasSemanales"),
    @NamedQuery(name = "Experiencialaboral.findBySalario", query = "SELECT e FROM Experiencialaboral e WHERE e.salario = :salario"),
    @NamedQuery(name = "Experiencialaboral.findBySatisfaccion", query = "SELECT e FROM Experiencialaboral e WHERE e.satisfaccion = :satisfaccion"),
    @NamedQuery(name = "Experiencialaboral.findByAnosExperiencia", query = "SELECT e FROM Experiencialaboral e WHERE e.anosExperiencia = :anosExperiencia"),
    @NamedQuery(name = "Experiencialaboral.findByTipoJornadaLaboral", query = "SELECT e FROM Experiencialaboral e WHERE e.tipoJornadaLaboral = :tipoJornadaLaboral"),
    @NamedQuery(name = "Experiencialaboral.findByTurno", query = "SELECT e FROM Experiencialaboral e WHERE e.turno = :turno"),
    @NamedQuery(name = "Experiencialaboral.findBySituacion", query = "SELECT e FROM Experiencialaboral e WHERE e.situacion = :situacion"),
    @NamedQuery(name = "Experiencialaboral.findByHorasExtraSemanalesNoRetribuidas", query = "SELECT e FROM Experiencialaboral e WHERE e.horasExtraSemanalesNoRetribuidas = :horasExtraSemanalesNoRetribuidas"),
    @NamedQuery(name = "Experiencialaboral.findByNaturalezaSector", query = "SELECT e FROM Experiencialaboral e WHERE e.naturalezaSector = :naturalezaSector"),
    @NamedQuery(name = "Experiencialaboral.findByAccesoAlPuesto", query = "SELECT e FROM Experiencialaboral e WHERE e.accesoAlPuesto = :accesoAlPuesto"),
    @NamedQuery(name = "Experiencialaboral.findByPuestoDeTrabajoActual", query = "SELECT e FROM Experiencialaboral e WHERE e.puestoDeTrabajoActual = :puestoDeTrabajoActual"),
    @NamedQuery(name = "Experiencialaboral.findByMGeografica", query = "SELECT e FROM Experiencialaboral e WHERE e.mGeografica = :mGeografica")})
public class Experiencialaboral implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "id", nullable = false)
    private Integer id;
    @Column(name = "fechaAlta")
    @Temporal(TemporalType.DATE)
    private Date fechaAlta;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "horasSemanales", precision = 22)
    private Double horasSemanales;
    @Column(name = "salario", precision = 22)
    private Double salario;
    @Column(name = "satisfaccion")
    private Integer satisfaccion;
    @Column(name = "anosExperiencia")
    private Integer anosExperiencia;
    @Column(name = "tipoJornadaLaboral", length = 1)
    private String tipoJornadaLaboral;
    @Column(name = "turno", length = 1)
    private String turno;
    @Column(name = "situacion")
    private Boolean situacion;
    @Column(name = "horasExtraSemanalesNoRetribuidas")
    private Integer horasExtraSemanalesNoRetribuidas;
    @Column(name = "naturalezaSector", length = 1)
    private String naturalezaSector;
    @Column(name = "accesoAlPuesto", length = 1)
    private String accesoAlPuesto;
    @Column(name = "puestoDeTrabajoActual", length = 512)
    private String puestoDeTrabajoActual;
    @Column(name = "mGeografica")
    private Boolean mGeografica;
    @JoinColumn(name = "municipio", referencedColumnName = "id")
    @ManyToOne(fetch = FetchType.LAZY)
    private Municipio municipio;
    @JoinColumn(name = "tipoContrato", referencedColumnName = "id")
    @ManyToOne(fetch = FetchType.LAZY)
    private Tipocontrato tipoContrato;
    @JoinColumn(name = "usuario", referencedColumnName = "id")
    @ManyToOne(fetch = FetchType.LAZY)
    private Usuario usuario;
    @JoinColumn(name = "profesion", referencedColumnName = "id", nullable = false)
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Profesion profesion;

    public Experiencialaboral() {
    }

    public Experiencialaboral(Integer id) {
        this.id = id;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Date getFechaAlta() {
        return fechaAlta;
    }

    public void setFechaAlta(Date fechaAlta) {
        this.fechaAlta = fechaAlta;
    }

    public Double getHorasSemanales() {
        return horasSemanales;
    }

    public void setHorasSemanales(Double horasSemanales) {
        this.horasSemanales = horasSemanales;
    }

    public Double getSalario() {
        return salario;
    }

    public void setSalario(Double salario) {
        this.salario = salario;
    }

    public Integer getSatisfaccion() {
        return satisfaccion;
    }

    public void setSatisfaccion(Integer satisfaccion) {
        this.satisfaccion = satisfaccion;
    }

    public Integer getAnosExperiencia() {
        return anosExperiencia;
    }

    public void setAnosExperiencia(Integer anosExperiencia) {
        this.anosExperiencia = anosExperiencia;
    }

    public String getTipoJornadaLaboral() {
        return tipoJornadaLaboral;
    }

    public void setTipoJornadaLaboral(String tipoJornadaLaboral) {
        this.tipoJornadaLaboral = tipoJornadaLaboral;
    }

    public String getTurno() {
        return turno;
    }

    public void setTurno(String turno) {
        this.turno = turno;
    }

    public Boolean getSituacion() {
        return situacion;
    }

    public void setSituacion(Boolean situacion) {
        this.situacion = situacion;
    }

    public Integer getHorasExtraSemanalesNoRetribuidas() {
        return horasExtraSemanalesNoRetribuidas;
    }

    public void setHorasExtraSemanalesNoRetribuidas(Integer horasExtraSemanalesNoRetribuidas) {
        this.horasExtraSemanalesNoRetribuidas = horasExtraSemanalesNoRetribuidas;
    }

    public String getNaturalezaSector() {
        return naturalezaSector;
    }

    public void setNaturalezaSector(String naturalezaSector) {
        this.naturalezaSector = naturalezaSector;
    }

    public String getAccesoAlPuesto() {
        return accesoAlPuesto;
    }

    public void setAccesoAlPuesto(String accesoAlPuesto) {
        this.accesoAlPuesto = accesoAlPuesto;
    }

    public String getPuestoDeTrabajoActual() {
        return puestoDeTrabajoActual;
    }

    public void setPuestoDeTrabajoActual(String puestoDeTrabajoActual) {
        this.puestoDeTrabajoActual = puestoDeTrabajoActual;
    }

    public Boolean getMGeografica() {
        return mGeografica;
    }

    public void setMGeografica(Boolean mGeografica) {
        this.mGeografica = mGeografica;
    }

    public Municipio getMunicipio() {
        return municipio;
    }

    public void setMunicipio(Municipio municipio) {
        this.municipio = municipio;
    }

    public Tipocontrato getTipoContrato() {
        return tipoContrato;
    }

    public void setTipoContrato(Tipocontrato tipoContrato) {
        this.tipoContrato = tipoContrato;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public Profesion getProfesion() {
        return profesion;
    }

    public void setProfesion(Profesion profesion) {
        this.profesion = profesion;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Experiencialaboral)) {
            return false;
        }
        Experiencialaboral other = (Experiencialaboral) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.qsdm.es.persistence.Experiencialaboral[ id=" + id + " ]";
    }
    
}
